--------------------------------------------------------------------------------
                                  Contents
--------------------------------------------------------------------------------

   1. Commands
   2. INI Settings
   3. How to Use Shopbot
   4. Frequently Asked Questions
   5. Contacts




--------------------------------------------------------------------------------
                                 Commands
--------------------------------------------------------------------------------

.shopbot setnpc actN <npc's name>
	Use this command to set which npc to shop with
	Example '.shopbot setnpc act5 larzuk'

.shopbot setnpc list actN
	List all possible NPC's for actN

.shopbot record
	starts/stops recording a path

.shopbot reload
	reloads the config file

.shopbot loadconfig <pathname>
	loads config file (defualts to shopbot)
	from shopbot\<pathname>.ini

.shopbot savepath <pathname>
	saves NPC, waypoints, and path information 
	to shopbot\paths\<pathname>.sbp in the d2hackit dir.

.shopbot loadpath <pathname>
	loads NPC, waypoints, and path informatiion
	from shopbot\paths\<pathname>.sbp

.shopbot townwp <waypoint>
	sets the town waypoint to <waypoint>

.shopbot otherwp <waypoint>
	sets the other waypoint to <waypoint>

.shopbot start
	starts the bot

.shopbot stop
	stops the bot

.shopbot Browse
	starts Browse Mode



--------------------------------------------------------------------------------
                                 INI Settings
--------------------------------------------------------------------------------


 Global Config Settings
 [global]
 autobuy=n		- 1 autobuy is on, 0 autobuy is off
 townwp=<string>	- [Required] The name of the town waypoint
 otherwp=<string>	- [Required] The name of the waypoint to goto get outside of town.
			  You MUST make this in the same act as the town waypoint or items dont update in the shop
 displaytext=n	        - 1 is on, 0 is off -- Wether to display the text
                         of what you are doing (Walking etc...)
 textabovehead=n       - 1 is on, 0 is off -- If displaytext is on, will
                         display the text above your head (heh) instead of on screen
 showallitems=n      - 1 is on, 0 is off -- Will display the list of items,
                         off means you see the item name only when there is a match
 bindstart="XX"        - Keycode to bind for ".shipbot start" defualts to "39" which is 9
 bindstop="XX"         - Keycode to bind for ".shipbot stop" defualts to "30" which is 0
 bindpathkey="XX"      - Keycode to bind for ".shipbot loadpath XXXXX" defualts to "38" which is 8
 bindpathnpc="XX"      - Keycode to bind for npc of ".shipbot start XXXXX" defualts to "Larzuk"
 itemsfile		- Record ALL Items in a file, or not (items-all.txt)
 boughtfile		- Record items that you buy (items-bought.txt)



 Item Syntax:
 [unique string]
 Code="abc"		- [Optional] This is the 3 letter itemcode.  4th char is always a space and is ignored
                                    This option is outdated and shouldn't be used anymore
 Description=<string>	- [Optional] This will print when the item is found. if not defined "No Description" will print
 MagicPrefix=<string>  - [Optional] Item must have this MagixPrefix
 MagicSuffix=<string>  - [Optional] Item must have this MagicSuffix
 Basename=<string>     - [Optional] Item's Basename aka what the item would be called without any prefix or suffix
 Category=<string>     - [Optional] Item's category (weapon, armor, gloves, boots, helmet, belt, shield)
                                    causes shopbot to only buy from that item type
 Quality=<string>      - [Optional] Can be "Exceptional", "Elite", "Normal" or leave it blank
                                    Will buy only items of that quality or greater
 ED=<integer>          - [Optional] Integer 0 - 300, Will buy only if item ED% is greater or equal to that value
 Sockets=<integer>     - [Optional] 0 - 4, will only buy item if it has that many sockets or greater
 Stop=<integer>        - [Optional] 0 or 1, if 1, will stop if buying that item fails





--------------------------------------------------------------------------------
                             How to Use Shopbot
--------------------------------------------------------------------------------


Using a Pre-Configured Path
-----------------------
	Howto get shopbot working on larzuk using the supplied larzuk path.
	 1. load shopbot (type ".load shopbot" - shopbot has to be in the d2hackit directory)
	 2. type ".shopbot loadpath larzuk"
	 3. goto act5 town, if you are already there take a wp out and back into town
	 4. type ".shopbot start"
         5. To stop shopbot type ".shopbot stop"

Using a Pre-Configured Path and Bind
-----------------------
	Howto get shopbot working on larzuk using the supplied larzuk path.
        Using shortcut keys courtesty of the bind module (these keys are autoloaded by shopbot)
	 1. load shopbot (type ".load shopbot" - shopbot has to be in the d2hackit directory)
	 2. Press 8 (to load Larzuk path)
	 3. goto act5 town, if you are already there take a wp out and back into town
	 4. Press 9 (".shopbot start")
         5. To stop shopbot Press 0 (".shopbot stop")

Creating your own path files
-----------------------
	Howto get shopbot working on larzuk.  You should be able to take
	simular steps to get shopbot working in other acts/npc's
  
	You need to do the following steps to get the bot in a working state.
	 1. load shopbot (type ".load shopbot" - shopbot has to be in the d2hackit directory)
	 2. goto act5 town (harrogath) if you aren't already there
	 3. run '.shopbot setnpc act5 larzuk' 
	 4. take the wp to frigid highlands
	 5. take the wp back to town (harrogath) (dont move once you are back)
	 6. '.shopbot record' you will see 'Path Recording Started'
	 7. walk to larzuk
		- it seems to work best if you make multiple click when walking
		  to larzuk.  The client sends more movement packets.
	 8. '.shopbot record' you will see 'Path Recording Stoppped'
		- this is the path the bot will use to get from the
		  waypoint to lazruk and back
	 9. take the wp to frigid highlands and the back to town
	10. '.shopbot start'




--------------------------------------------------------------------------------
                          Frequently Asked Questions
--------------------------------------------------------------------------------
  
Q: Why don't I see shopbot move, even though he goes through the WP and the NPC Menu pops up?
A: You will not see him move at all, this is a because we deny a server sync, and you actually walk
   slightly faster this way.  If you don't believe that he is moving at all, either have a friend verify
   it, or buy a merc and turn your map on (remember, your merc follows you!)

-----------------------
 
Q: Why do I get an invalid command error when I load shopbot?
A: Shopbot defualts to autoloading a few binded keys, you need to have bind started before you
   load shopbot, or disabled the bind usage in the ini file.

-----------------------
 
Q: Can you support multiple NPCs at one time, and check them all before going back through the WP?
A: This has been gone over many, many times, while it would be possible with ALOT of coding, there are
   no plans on doing it anytime soon.

-----------------------

Q: How do I use multiple configs?
A: If you want to load a different config, just type ".shopbot loadconfig configname" leave off the ini on the configname.
   If the config name isn't valid (it has to be in the /shopbot directory, it will revert back to the default ini.
   If you ".shopbot reload" it will reload the last config used.  The lastconfig used is not saved, so shopbot will always
   use the default ini at load time.

-----------------------

Q: Can shopbot be detected by Blizzard?
A: Yes, there are ways, but not easy ones, and I have made it even harder by randomizing the movements.
   Shopbot sends all valid packets, and does everything by the books.  You can also disable the text, so even that
   stops a way Blizzard could detect it.  If you think you know a way that it can be detected, email me and let me
   know and I'll figure out a way to fix it.
   
-----------------------

Q: What is Quality used for?
A: Quality="elite" will only buy elite items.  If you put "exceptional" it will buy exceptionals and elites.
   This is good for items that you don't specify a basename for.  Put it with the item in the ini.

-----------------------

Q: What is Browse mode?
A: Browse Mode is where shopbot will just scan items for you and alert you when it finds one that matches.
   This is good for when you are cow running, or a pindle running and go for repairs, shopbot will search
   while you repair, so you don't have to worry about checking the items over yourself.  When started, Browse
   Mode will continue to run until you either start or stop shopbot, so you don't have to start browse every game.
   It will not automatically buy the item though, its up to you to do that :)

-----------------------

Q: Do I have to go through the WP before I start shopbot?
A: It depends... shopbot has to get the ID for the WP inorder to go through it.  If shopbot
   is loaded before you enter the game, or if you walk far way from the wp and come back, or if
   go through a wp, then it will get the WP ID.

-----------------------

Q: Can you detect sockets on an item?
A: Yes, just put Sockets=3 with your item, and it will buy it
   if it has 3 or more sockets.

-----------------------

Q: Is there anyway to detect ED % for a weapon? 
A: Yes, just put ED=<number 0-300> with the item in the ini (ex: ED=290 will buy 290% ED items and above)

-----------------------
 
Q: Do I have to include the "of" in the Suffix?  
A: Yes

-----------------------
 
Q: When inputting items into the ini, is it case sensitive? 
A: No, both "Cruel" and "cruel" will work. 

-----------------------
 
Q: Why do I only see armors lists, and no weapons?  
A: The screen buffer can only hold so many messages at a time, weapons are looked at first, so they are pushed into the message buffer by the armors. Try pressing M and scrolling through your message buffer to see them. If they aren't there, then it means that they have been pushed out of the message buffer by other items. Trust me, they have been scanned.  

-----------------------
 
Q: What happens when shopbot finds an item? 
A: Shopbot will print the item description as defined in the ini file. Then it will try to purchase the item, if it fails, it will try 3 more times to buy it. If it still fails, it will tell you that you either didn't have enough space or gold. If Stop is set for the item, it will stop and go into Anti-Idle mode. 

-----------------------
 
Q: Does Autobuy make sure I have enough gold and/or inventory space before trying to purchase the item? 
A: No, but it will tell you if you didn't have enough gold or space after it tries to purchase the item

-----------------------
 
Q: What is this anti-idle mode? 
A: The server will auto-kick you back to bnet if your char is idle for an extended period of time. Anti-idle mode will attempt to get around this by making your char move from time to time as well as play a sound. It hasnt been throughly test and I am not sure how well it works.

-----------------------
 
Q: How do I get my 0.20beta ini to work with this new version? 
A: Copy and paste the [global] section from the 0.48beta sample ini file. 

-----------------------
 
Q: Shopbot sometimes doesnt get a list of items from the NPC. 
A: Some of the NPC's move around a bit and its likely they are out of range from the last step in your recorded path. If you never get a list its also possible you have a bad path recorded from the waypoint to the NPC.

-----------------------
 
Q: Is there anyway to speed up shopbot? 
A: Yes, somewhat. If you adjust set steptime to 1. This will lower the amount of time that shopbot waits between taking steps. If your char can run fast I would suggest doing this. Lowering this setting can cause shopbot to get lost more often, though it should recover by itself. 
   I would also suggest putting lots of Run/Walk items on your character, shopbot can truely only go as fast as you can walk.

-----------------------
 
Q: Can shopbot use a teleporter to get in and out of town? like the red that is next to anya? 
A: Yes, you can use the red portal next to anya. Just do
.shopbot loadpath anyaportal
and proceed as normal

-----------------------
 
Q: Does the ini file support non-english languages for item and waypoint definitions? 
A: NO, all strings in the ini file for diablo specific stuff should be in english.  

-----------------------
 
Q: What is the itemcode for item? 
A: item codes are no longer required. You can now use basename= in the ini file. basename refers to the item without any magic prefix or suffix. Example basename="Thunder Maul" 

-----------------------
 
Q: How do I make it look for item ? 
A: open up shopbot.ini and add it. 

-----------------------
 
Q: In the changelog there is a client walk update. what is that? 
A: Its suppose to make your client view update when the bot is moving you. It didnt seem to work for me, but both blackpower and berto confirmed it was working for them. 

-----------------------
 
Q: When you record the path should I click on the npc? 
A: Its not required. In general if the npc moves, like larzuk does, its best to end the path in the middle of the npc's move area. For larzuk the middle of the deck he stands on is a good place. Its something you will have to play with. 
   Really, all you have to do is get it close to him, and shopbot will find him itself.

-----------------------
 
Q: Everytime shopbot opens the trade with the npc's items are always the same!? 
A: 3 possibilities
1. Your otherwp is not in the same act as the townwp
2. someone else is in the game
3. blizzard patched diablo to stop shopbot
 

-----------------------
 
Q: Shopbot runs for hours and does seem to find anything, what gives? 
A: It can take many hours to fine the elite weapons with a good magic prefix and/or suffix. If you are worried about shopbot not working try making it look for a less rare item. 

-----------------------
 
Q: My question isnt in this QA section. WTF? 
A: Best bet would be to post a message on the different d2hacking forums 

-----------------------
